package com.neihe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.neihe.entity.Share;
import com.neihe.entity.dto.share.CancelShareDTO;
import com.neihe.entity.dto.share.CheckShareCodeDTO;
import com.neihe.entity.dto.share.CreateShareUrlDTO;
import com.neihe.entity.vo.share.ShareDetailVO;
import com.neihe.entity.vo.share.ShareSimpleDetailVO;
import com.neihe.entity.vo.share.ShareUrlListVO;
import com.neihe.entity.vo.share.ShareUrlVO;

import java.util.List;

public interface IShareService extends IService<Share> {

    ShareUrlVO create(CreateShareUrlDTO requestParam);

    List<ShareUrlListVO> getShares();

    void cancelShare(CancelShareDTO requestParam);

    ShareSimpleDetailVO simpleDetail(String shareIdentifier);

    String checkShareCode(CheckShareCodeDTO requestParam);

    ShareDetailVO detail(String token);

    /**
     * 刷新受影响的对应的分享的状态
     *
     * @param allAvailableFileIdList 所有可用文件 ID 列表
     */
    void refreshShareStatus(List<Long> allAvailableFileIdList);
}
